Modern software development methods such as continuous integration involve frequent testing of an evolving codebase. Quick testing, focused on the portions of the codebase most likely to fail is needed to detect as many bugs as possible early in the software development/integration cycle. Bugs detected late in the software development/integration cycle may often be more difficult and time-consuming to fix.